1. Field of the Invention
This invention relates to apparatus and methods for improving the performance of redundant arrays of independent disks (RAIDs) when undergoing a rebuild process.
2. Background of the Invention
A RAID (i.e., a Redundant Array of Independent Disks) is a storage technology that provides increased storage functions and reliability through redundancy. A RAID is created by combining multiple disk-drive components (or other storage components such as solid state drives) into a logical unit. Data is then distributed across the drives using one of various techniques, referred to as “RAID levels.” The standard RAID levels, which currently include RAID levels 1 through 6, are a basic set of RAID configurations that employ striping, mirroring, and/or parity to provide data redundancy. Each of the configurations provides a balance between two key goals: (1) increasing data reliability and (2) increasing I/O performance.
When a disk-drive component of a RAID fails, the RAID may be rebuilt to restore data redundancy. This may be accomplished by replacing the failed disk-drive component with a standby disk-drive component and copying and/or regenerating the lost data on the standby disk-drive component. Ideally, the RAID will be rebuilt as expeditiously as possible to minimize the possibility that another disk-drive component will fail and result in permanent data loss.
When a RAID is being rebuilt due to a disk failure, the RAID controller typically has to utilize bandwidth and/or processing resources to reconstruct the lost data. In many cases, the RAID controller must also continue to process read and write operations. As a result, both the rebuild time and the read/write response time are negatively impacted due to the competition for resources. If more resources are dedicated to rebuilding the RAID, the I/O performance suffers. If more resources are dedicated to servicing I/O requests, the rebuild time is extended. The longer rebuild time increases the probability that a failure will occur that results in permanent data loss.
In view of the foregoing, what are needed are apparatus and methods to improve the performance of RAIDs during a rebuild process. Ideally, such apparatus and methods will minimize the impact on both I/O performance and rebuild time.